package main

import "fmt"

func main() {

	// 1、请求出一个数组里面元素的和以及这些元素的平均值。分别用for和for-range两种方式实现。

	// var arr = [...]int{12, 23, 45, 67, 89}
	// var sum int = 0
	// for i := 0; i < len(arr); i++ {
	// 	sum += arr[i]
	// }
	// fmt.Printf("arr数组的总和是：%v平均值是：%.2f\n", sum, float64(sum)/float64(len(arr)))
	/*
		2、请求出一个数组的最大值，并得到对应的下标
		思路：
			① 声明一个数组 var intArr[5] = [...]int{1, -1, 12, 65, 11}
			② 假设第一个元素就是最大值，下标就是0
			③ 然后从第二个元素开始循环比较，如果发现有更大，则交换
	*/

	// var intArr = [...]int{1, -1, 12, 65, 11}
	// maxNum := intArr[0]
	// maxIndex := 0
	// for i := 1; i < len(intArr); i++ {
	// 	if intArr[i] > maxNum {
	// 		maxNum = intArr[i]
	// 		maxIndex = i
	// 	}
	// }
	// fmt.Printf("数组的最大值是：%v，对应的下标是：%v\n", maxNum, maxIndex)

	// 3、从数组[1, 3, 5, 7, 8]中找出和为8的两个元素的下标分别为(0,3)和(1,2)

	var arr = [...]int{1, 3, 5, 7, 8}
	for i := 0; i < len(arr); i++ {
		for j := i + 1; j < len(arr); j++ {
			if arr[i]+arr[j] == 8 {
				fmt.Printf("数组中下标为(%v,%v)的元素和为8\n", i, j)
			}
		}
	}

}
